try, except, এবং finally ব্লক ব্যবহার

Exception Handling (এক্সেপশন হ্যান্ডলিং) - প্যাসক্যাল (Pascal) - Computer Programming

208

প্যাসক্যাল ভাষায় অপরিকল্পিত ত্রুটি (runtime errors) বা এক্সেপশন (exception) হ্যান্ডলিংয়ের জন্য try, except, এবং finally ব্লক ব্যবহার করা হয়। এর মাধ্যমে আপনি কোডের এমন অংশে ত্রুটি মোকাবিলা করতে পারেন যা স্বাভাবিকভাবে ত্রুটি তৈরি করতে পারে এবং সেই ত্রুটির জন্য একটি কাস্টম প্রক্রিয়া নির্ধারণ করতে পারেন।

এখানে প্রতিটি ব্লক কীভাবে কাজ করে তা বিস্তারিত আলোচনা করা হলো:

  • try ব্লক: এখানে আপনি সেই কোডটি রাখবেন যা আপনি পরীক্ষা করতে চান, অর্থাৎ যেখানে ত্রুটি হতে পারে।
  • except ব্লক: যদি try ব্লকের মধ্যে কোনো ত্রুটি ঘটে, তবে এটি সেই ত্রুটিকে ধরতে এবং এক্সেপশন হ্যান্ডলিং কোড চালাতে ব্যবহৃত হয়।
  • finally ব্লক: এটি একটি ঐচ্ছিক ব্লক যা try এবং except ব্লকের পর থাকে। এটি সবসময় রান হয়, ত্রুটি ঘটুক বা না ঘটুক। এটি সাধারণত ক্লিনআপ কাজের জন্য ব্যবহৃত হয়, যেমন ফাইল বন্ধ করা, রিসোর্স মুক্ত করা ইত্যাদি।

উদাহরণ: try, except, এবং finally ব্লক

program ExceptionHandlingExample;
var
  a, b, result: Integer;
begin
  try
    // ইউজারের ইনপুট নেওয়া
    writeln('Enter the numerator:');
    readln(a);
    writeln('Enter the denominator:');
    readln(b);

    // শূন্য দিয়ে ভাগের চেষ্টা (যেটি ত্রুটি তৈরি করবে)
    result := a div b;
    
    writeln('Result: ', result);
  except
    on E: EDivByZero do
      writeln('Error: Cannot divide by zero!');
    on E: Exception do
      writeln('An unexpected error occurred: ', E.Message);
  finally
    writeln('This block is always executed.');
  end;
end.

এখানে কী ঘটছে:

  1. try ব্লক: a div b অপারেশনটি এখানে রাখা হয়েছে। যেহেতু শূন্য দিয়ে ভাগ করলে একটি ত্রুটি ঘটবে, এটি except ব্লকে চলে যাবে।
  2. except ব্লক: এখানে দুটি এক্সেপশন হ্যান্ডলার দেওয়া হয়েছে:
    • EDivByZero: এটি শূন্য দিয়ে ভাগের জন্য তৈরি করা এক্সেপশন।
    • Exception: সাধারণ এক্সেপশন হ্যান্ডলিং।
  3. finally ব্লক: এটি সবসময় রান হয়, ত্রুটি ঘটুক বা না ঘটুক। এটি সাধারণত ক্লিনআপ কার্যাদি করার জন্য ব্যবহৃত হয়।

এক্সেপশন হ্যান্ডলিংয়ের বিভিন্ন ধরনের ত্রুটি

আপনি প্যাসক্যাল ভাষায় বিভিন্ন ধরনের এক্সেপশন হ্যান্ডলিং করতে পারেন। কিছু সাধারণ এক্সেপশন টাইপ যেমন:

  • EDivByZero: শূন্য দিয়ে ভাগের সময় ত্রুটি।
  • EOverflow: পূর্ণসংখ্যার সীমা ছাড়িয়ে যাওয়ার সময় ত্রুটি।
  • Exception: সাধারণ এক্সেপশন যা সাধারণ যে কোনো ত্রুটির জন্য ব্যবহৃত হয়।

আরও উদাহরণ:

program MultipleExceptionsExample;
var
  x, y: Integer;
begin
  try
    writeln('Enter first number:');
    readln(x);
    writeln('Enter second number:');
    readln(y);

    // পূর্ণসংখ্যার সীমা চেক করা
    if (x > MaxInt) or (y > MaxInt) then
      raise EOverflow.Create('Number exceeds maximum limit');
    
    writeln('Sum: ', x + y);
  except
    on E: EDivByZero do
      writeln('Error: Division by zero.');
    on E: EOverflow do
      writeln('Error: ', E.Message);
    on E: Exception do
      writeln('Unexpected error: ', E.Message);
  finally
    writeln('End of error handling process.');
  end;
end.

সারাংশ

  • try: কোড ব্লক যেখানে আপনি ত্রুটি ঘটতে পারে এমন অংশ রাখবেন।
  • except: ত্রুটি ঘটলে তা ধরার এবং এক্সেপশন হ্যান্ডলিং করার জায়গা।
  • finally: সবসময় রান হয়, এখানে আপনি ক্লিনআপ বা রিসোর্স ফ্রি করতে পারেন।

try, except, এবং finally ব্লকগুলি ব্যবহার করে আপনি কোডে বিভিন্ন ত্রুটি বা ব্যতিক্রমকে কার্যকরভাবে হ্যান্ডেল করতে পারবেন, যাতে প্রোগ্রামটি ক্র্যাশ না করে এবং প্রাসঙ্গিক ত্রুটি বার্তা বা প্রতিক্রিয়া প্রদান করতে পারে।

Content added By
Promotion

Are you sure to start over?

Loading...